Postmortem NYPP Mai 2025

Author

Zineddine Aliche

Published

October 17, 2025

đŸ› ïž Points Ă  discuter et Projets

  • Application des prĂ©bis, accessible via l’url : https://bidanalysis.magitdev.com/.
Code
# Import necessary libraries
from services import snowflake_queries as sq
from components import graph_utils as gu, constraint_utils as cu
import plotly.graph_objects as go
from services.database_connection import init_connection
from itables import show, JavascriptFunction
import ipywidgets as widgets

conn=init_connection()

📈 Evolution de la load et du vents

  • La load en monthly est bien estimĂ©e pour la premiĂšre moitiĂ© du mois, et largement surestimĂ©e pour la deuxiĂšme moitiĂ© ; le scĂ©nario LoadMin Ă©tait plus adaptĂ© pour l’estimation de la load.
  • L’estimation du vent diffĂšre entre le daily et le monthly.
Code
df_Load=sq.get_Load(['NYPP_1DA_Default', 'NYPP_1MA_Default', 'NYPP_1MA_LoadMin','NYPP_1MA_LoadMax']
                  ,'2020-01-01'
                  ,'2025-05-31'
                  ,conn
                  )
df_Wind=sq.get_Wind(['NYPP_1DA_Default','NYPP_1MA_Default','NYPP_1MA_WindMin','NYPP_1MA_WindMax']
                  ,'2020-01-01'
                  ,'2025-05-31'
                  ,conn
                  )

gu.create_graph_load(df_Load,'TOTAL','2025-05-01','2025-05-31')
gu.create_graph_wind(df_Wind,'2025-05-01','2025-05-31')

𝄜 Top contraintes du mois

Code
df_PM=sq.get_PostMortem(1
                        ,'2025-05-01'
                        ,'2025-05-31'
                        ,['NYPP_1MA_Default', 'NYPP_1MA_AvgHistSP', 'NYPP_1MA_DL_AvgSP']
                        ,conn)

df_PM.fillna(0,inplace=True)
exclude_columns = ["CID_MAG", "CID_CES", "CONSTRAINTNAME","CONTINGENCYNAME"]

# Apply formatting to all other columns
for col in df_PM.columns:
    if col not in exclude_columns:
        df_PM[col] = df_PM[col].apply(lambda x: f"${x:,}")

# Apply formatting to all other numeric columns


show(df_PM,
    classes="compact",
    column_filters="header", 
    layout={"topEnd": None}, 
    style="font-size: 12px;",
    )
Loading ITables v2.5.2 from the internet... (need help?)

đŸ•”ïž Analyses des contraintes

Code
# paramÚtres généraux
pool_id=1
ftrstartdate='2025-05-01'
ftrenddate='2025-05-31'
histostartdate='2025-05-01'
histoenddate='2025-05-31'
scenario_flows=['NYPP_1MA_Default','NYPP_1DA_Default','NYPP_1MA_AvgHistSP', 'NYPP_1MA_DL_AvgtSP' ]
scenario_first_priority='NYPP_1DA_Default'
scenario_sf=['NYPP_1MA_Default','NYPP_1DA_Default']
scenario_histo_sp=['NYPP_1MA_Default','NYPP_1DA_Default',
                    'NYPP_1MA_AvgHistSP',
                    'NYPP_1MA_DL_AvgtSP'
                    ]
SHORE_RD-LAKSUCSS_138_367:BASE CASE_(25145)

Analyse : - L’outage 25150 (SHORE_RD-LAKSUCSS_138_368, entre le 30 avril et le 12 juin 2025, une ligne parallĂšle Ă  la ligne de la contrainte) a Ă©tĂ© manquĂ© en Monthly par Dayzer. L’outage n’était pas prĂ©sent dans l’OPF du marchĂ© non plus. - Cet outage redirige en moyenne 60 MW sur la ligne de la contrainte. - Le meilleur scĂ©nario ayant captĂ© l’amplitude est le 1DA_DL_AvgSP, mais avec un signe positif (ce qui est logique car la dĂ©finition de la ligne est inversĂ©e par rapport au marchĂ©). - Les limites de la contrainte dans Dayzer et dans le marchĂ© sont similaires. - Selon YesEnergy, cet outage est de retour Ă  partir du 14 juin, ce qui explique pourquoi la contrainte est bindĂ©e en RT. - Les principaux drivers de cette contrainte sont la load dans LI et les loopflows, et elle est soulagĂ©e par la gĂ©nĂ©ration NR. - La baisse des flows en daily entre le 16 et le 22 mai dans Dayzer est due Ă  un changement dans le cĂ©dule des loopflows.

Loading ITables v2.5.2 from the internet... (need help?)
DEPOSIT 69 INDIANHD 69 1 TWR:HOLTSVLLE 881& 882& 880_325971

Analyse :

  • ImpactĂ©e par la load dans LI, et soulagĂ©e par la gĂ©nĂ©ration NR et le vent.
  • L’outage 25601 (PORTJEFF 138KV 69 BK 7, entre le 14 mai et le 23 mai), manquĂ© en Monthly, ajoute jusqu’à 10 MW sur une limite de 120 MW.
  • L’outage 25681 (HAUPPAUG-C._ISLIP 138KV 889, 1er et 2 mai) est Ă©galement manquĂ© en Monthly.
  • Cette contrainte n’a pas Ă©tĂ© bindĂ©e, et la vĂ©ritable contrainte qui a bindĂ© n’est pas prĂ©sente dans le modĂšle (je vais l’ajouter
) — mĂȘme ligne, mais avec une contingence diffĂ©rente.
Loading ITables v2.5.2 from the internet... (need help?)
ASTANNEX 138 ASTORIAE 138 1 SIN: E13THSTA Q35M&BK10&REA2_325849

Analyse :

  • Pas grand-chose Ă  dire, impactĂ©e Ă  100 % par les loopflows selon Dayzer.
  • La ligne parallĂšle de la contingence est en outage (ASTANNEX-E13THSTA_345_Q35L) (PTID 25134) depuis le 24 avril 2025, ce qui ajoute de la pression.
Loading ITables v2.5.2 from the internet... (need help?)